package com.ruicar.afs.cloud.channel.channelworkflow.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruicar.afs.cloud.channel.affiliation.condition.AffiliationCondition;
import com.ruicar.afs.cloud.channel.channelworkflow.condition.ChannelOnlineWorkFlowCondition;
import com.ruicar.afs.cloud.channel.channelworkflow.entity.WorkTaskAssign;
import com.ruicar.afs.cloud.channel.channelworkflow.vo.AffiliationWorkTaskVo;
import com.ruicar.afs.cloud.channel.channelworkflow.vo.CarDealerWorkTaskVo;
import com.ruicar.afs.cloud.channel.channelworkflow.vo.ChannelOnlineWorkTaskVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author mingzhi.li
 */
public interface WorkTaskAssignMapper extends BaseMapper<WorkTaskAssign> {
    /**
     * 多条件查询渠道上线列表
     *
     * @param page
     * @param condition
     * @return
     */
    IPage<List<ChannelOnlineWorkTaskVo>> getChannelWorkFlowInfo(Page page, @Param("query") ChannelOnlineWorkFlowCondition condition);

    IPage<List<CarDealerWorkTaskVo>> getCommoncarDealerWorkflowInfo(Page page, @Param("query") ChannelOnlineWorkFlowCondition condition);

    IPage<List<CarDealerWorkTaskVo>> getDirectCarDealerWorkFlowDataByCondition(Page page, @Param("query") ChannelOnlineWorkFlowCondition condition);

    IPage<List<ChannelOnlineWorkTaskVo>> getAccountInfoList(Page page, @Param("query") ChannelOnlineWorkFlowCondition condition);

    IPage<List<AffiliationWorkTaskVo>> getAffiliationWorkflowInfo(Page page, @Param("query") AffiliationCondition condition, @Param("roles") List<String> roles);

    IPage<ChannelOnlineWorkTaskVo> getChannelQuotaTaskByCondition(Page page, @Param("query")ChannelOnlineWorkFlowCondition condition);
}
